/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.mahumLogs.utils;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSchException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Kalast
 */
public class SSHHalt extends Thread{
    private long time;
    private Channel chanSSH;
    private int timeout;
    
    /**
     * @param chanSSH
     * @param timeout 
     */
    public SSHHalt(Channel chanSSH, int timeout) {
        this.chanSSH = chanSSH;
        this.timeout = timeout;
    }

    /**
     * 
     */
    @Override
    public void run() {
        System.out.println("Arrêt automatique de la liaison SSH dans " + timeout + " secondes ...");
        try {
            time = System.currentTimeMillis();
            while (System.currentTimeMillis() - time < timeout*1000) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(LogsLector.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            System.err.println("Fermeture forcée par sécurité de le connexion SSH.");
            chanSSH.getInputStream().close();
            chanSSH.disconnect();
            chanSSH.getSession().disconnect();
        } catch (JSchException ex) {
            System.err.println("L'action à échoué.");
        } catch (IOException ex) {
            System.err.println("L'action à échoué.");
        }
    }
}
